Database queries can be indexed to increase the speed of lookups. For example, a frequently made query may be indexed by maintaining a separate list of all objects that satisfy that query. Whenever that query is made, the result can be obtained by accessing the index rather than searching the database. Typically, the indexes that are maintained are manually specified prior to runtime, which can be time consuming. In addition, some queries may require accessing multiple indexes, which can take additional processing time. It would be desirable to have a more efficient method of accessing data.